<?php 
/**
 * @author luu van trung
 * @category Candy Library
 * @package Candy Workflow
 * 
 */
abstract class CandyWF_Execution_Object {
	
	protected $_name;
	protected $_key;
	protected $_description;
	protected $_priority;
	protected $_processContext;
	protected $_lastStateTime;
	protected $_currentState;
	
	/**
	 * 
	 * change status to open.running from open.not_running.suspended
	 */
	abstract public function resume();
	/**
	 * 
	 * change status to close.terminate
	 */
	abstract public function terminate();
	/**
	 * 
	 * change status to open.not_running.suspended 
	 */
	abstract public function suspend();
	/**
	 * 
	 * change status to close.abort
	 */
	abstract public function abort();
	/**
	 * 
	 * change to new state
	 * @param unknown_type $newstate
	 */
	abstract public function changeSate($newstate);
}
?>